package cn.caplike.demo.java.spi;

import cn.caplike.demo.java.spi.service.HelloSPI;
import cn.caplike.demo.java.spi.service.Stereotype;

import java.util.ServiceLoader;

/**
 * Description: 入口.
 *
 * @author LiKe
 * @version 1.0.0
 * @date 2022-04-04 09:57
 * @see <a href="https://zhuanlan.zhihu.com/p/84337883">https://zhuanlan.zhihu.com/p/84337883</a>
 * @see ServiceLoader
 */
public class Application {

    public static void main(String[] args) {
        ServiceLoader.load(Stereotype.class).forEach(action -> action.apply("2022-04-04"));

        ServiceLoader<HelloSPI> serviceLoader = ServiceLoader.load(HelloSPI.class);
        // 执行不同厂商的业务实现，具体根据业务需求配置
        for (HelloSPI helloSPI : serviceLoader) {
            helloSPI.sayHello();
        }
    }
}
